package cn.dengta.webapp.trade.form.query;

import cn.dengta.common.model.TimeInterval;
import cn.dengta.common.util.Common;
import cn.dengta.common.web.Client;
import cn.dengta.context.model.WesKit;
import cn.dengta.webapp.base.form.BaseForm;
import cn.dengta.webapp.base.form.QueryBaseForm;
import cn.dengta.webapp.trade.entity.RechargeLog;
import cn.dengta.webapp.user.model.Gender;
import lombok.*;
import lombok.experimental.Accessors;
import me.codeplayer.util.StringUtil;

/**
 * 用户积分
 *
 * @author yuqidi
 * @since 2022-03-14
 */
@Setter
@Getter
@Accessors(chain = true)
public class RechargeLogQuery extends QueryBaseForm<RechargeLog> {

	/** 本地号，不一样的平台可能order_no=trade_no */
	protected String orderNo;
	/** 本地号，不一样的平台可能order_no=trade_no */
	protected String tradeNo;
	/** 用户ID */
	protected Long userId;
	protected Long agentId;
	/** 用户ids */
	protected Long[] userIds;
	/** 昵称 */
	protected String userNickname;
	/** 注册国家 */
	public String regCountry;
	/** 类型 1-充值 2-VIP充值 3-提现  4-购买加速器 5-续费会员 */
	protected Integer type;
	/** 支付平台：1=Google；2=Apple；3=PayPal；4=Payoneer */
	protected Integer platform;
	/** 状态 0-未开始 1-已提交 2-已完成 3-已退回 4-交易异常 5-未打款完成 6-退款中 */
	protected Integer status;
	/** 状态 1=支付成功,2=存在退款 */
	protected Integer statusTab;
	/** 内购商品本地ID */
	protected Long productId;

	protected Integer vip;

	protected Integer firstFlag;

	protected Integer vipDays;

	protected Client client;

	protected Long channelId;
	/** 充值金额排序：0=asc，1=desc */
	protected Integer rechargeAmountSort;
	/** 充值次数排序：0=asc，1=desc */
	protected Integer rechargeTimesSort;

	public Gender gender;
	public String groupAttr;
	public String selectKey;
	public boolean newOrOldUser;
	/** 渠道ids */
	public Long[] channelIds;
	public Integer queryChannelCountry;

	@Setter(AccessLevel.NONE)
	public boolean fromChannel = false;
	public TimeInterval registerInterval;
	/** 分包 */
	public WesKit wesKit;

	public void setWesKit(Integer wesKit) {
		this.wesKit = WesKit.of(wesKit);
	}
	public void setGender(Integer gender) {
		this.gender = Gender.of(gender);
	}

	public void setChannels(String channels) {
		if (StringUtil.notEmpty(channels)) {
			channelIds = Common.splitAsLongs(channels);
		}
	}

}
